Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
The present disclosure relates to customizing calculation intensive applications that read data, manipulate data, and report from large collections of data, and in particular, to systems and methods for generating high performance calculators for the complex calculation graphs required by such applications. Conventional systems and methods for generating such calculators for business analysis applications requires the use of specialized coding languages implemented by skilled or experienced application developers. Accordingly, the use of such, conventional systems is a highly complex, time-consuming and expensive endeavor. These disadvantages are exacerbated because the desired data analysis for which various companies turn to such applications varies from company to company, which makes implementing customized implementations of the applications prohibitive, if not impossible.
One exemplary category of such applications include sales and operations planning applications, or so-called “S&OP” applications. Many companies rely on S&OP applications to provide them with analysis of data stored in disparate or common databases that contain information regarding various aspects of a particular business or enterprise. These data stores include minute details regarding suppliers, inventory, capacity, demand, and other business specific information that various decision makers use for establishing goals, plans, and projections, as well as for evaluating past performance or adjusting expectations. Often, the data for such analysis is collected by and organized in enterprise resource planning (“ERP”) systems. Occasionally, S&OP applications can be included as one of the modules of an ERP application. In other embodiments, data can be collected and organized in other types systems and applications including, but not limited to, finance management systems, supply chain planning systems, and central management systems.
In most conventional S&OP application packages, and other similar applications, the desired analysis, results, and reports are hardcoded into the software package at the time the S&OP application is designed or implemented. The nature of hardcoding the desired analysis into the S&OP application prevents easy customization for specific companies and for individual divisions of the same company. The calculations involved in an S&OP can be dependent on or require input from additional calculations or chains of calculations that can reach many levels deep. For instance, each calculation can require inputs ranging from direct reads a retrieval of information store database level data store, such as a database, as well as outputs from one to many intermediate calculations.
To service the needs of each company, or even various individuals or divisions within each company, many lines of code, often numbering in the millions of lines, would need to be augmented to achieve the desired customized results. Since the analysis and the resulting reports from an S&OP application are typically performed on a periodic basis, augmenting the S&OP application would prove to be cost and time prohibitive for most companies. For example, most businesses typically perform S&OP analysis and reports on a quarterly basis. Changing the S&OP application on a quarterly basis would be an arduous process, even for the most resource rich companies.
Thus, there is a need for improved customizable or configurable analysis of complex or multilayered sets of complex data and dependent calculations. The interdependencies of the complex data and dependent calculations can usually be represented as calculation execution graphs. Modeling and instantiating calculation execution graphs can be arduous and cost prohibitive endeavor that prevents many companies of all sizes for providing access to customized analysis and planning software, such as S&OP applications. The present invention solves these and other problems by providing systems and methods for automatically generating calculators for calculation graphs.